/**
 */
package FeatureCode;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Path Expression</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link FeatureCode.PathExpression#getSpecial <em>Special</em>}</li>
 *   <li>{@link FeatureCode.PathExpression#getPrefix <em>Prefix</em>}</li>
 *   <li>{@link FeatureCode.PathExpression#getSuffix <em>Suffix</em>}</li>
 * </ul>
 * </p>
 *
 * @see FeatureCode.FeatureCodePackage#getPathExpression()
 * @model
 * @generated
 */
public interface PathExpression extends Path {
	/**
	 * Returns the value of the '<em><b>Special</b></em>' attribute.
	 * The literals are from the enumeration {@link FeatureCode.PathEnum}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Special</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Special</em>' attribute.
	 * @see FeatureCode.PathEnum
	 * @see #setSpecial(PathEnum)
	 * @see FeatureCode.FeatureCodePackage#getPathExpression_Special()
	 * @model
	 * @generated
	 */
	PathEnum getSpecial();

	/**
	 * Sets the value of the '{@link FeatureCode.PathExpression#getSpecial <em>Special</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Special</em>' attribute.
	 * @see FeatureCode.PathEnum
	 * @see #getSpecial()
	 * @generated
	 */
	void setSpecial(PathEnum value);

	/**
	 * Returns the value of the '<em><b>Prefix</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Prefix</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Prefix</em>' containment reference.
	 * @see #setPrefix(Path)
	 * @see FeatureCode.FeatureCodePackage#getPathExpression_Prefix()
	 * @model containment="true"
	 * @generated
	 */
	Path getPrefix();

	/**
	 * Sets the value of the '{@link FeatureCode.PathExpression#getPrefix <em>Prefix</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Prefix</em>' containment reference.
	 * @see #getPrefix()
	 * @generated
	 */
	void setPrefix(Path value);

	/**
	 * Returns the value of the '<em><b>Suffix</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Suffix</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Suffix</em>' containment reference.
	 * @see #setSuffix(Path)
	 * @see FeatureCode.FeatureCodePackage#getPathExpression_Suffix()
	 * @model containment="true"
	 * @generated
	 */
	Path getSuffix();

	/**
	 * Sets the value of the '{@link FeatureCode.PathExpression#getSuffix <em>Suffix</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Suffix</em>' containment reference.
	 * @see #getSuffix()
	 * @generated
	 */
	void setSuffix(Path value);

} // PathExpression
